package com.example.huazong.myapplication.adapters;

import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;


import com.example.huazong.myapplication.R;
import com.example.huazong.myapplication.beans.ItemBean;

import java.util.List;

/**
 * Created by huazong on 2021/5/14.
 */

public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.InnerHolder> {


   public List<ItemBean> mData;
    public OnItemClickListener mOnItemClickListener;

    public RecyclerAdapter(List<ItemBean> data) {
        this.mData = data;
    }

    /**
     * 这个方法用来创建条目View
     *
     * @param parent
     * @param viewType
     * @return
     */
    public InnerHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        //传进去的这个View其实就是条目的界面
        //两个步骤
        //1.拿到view
        //2.创建InnerHolder
        View view = View.inflate(parent.getContext(), R.layout.item_list_view, null);
        return new InnerHolder(view);
    }

    /**
     * 这个方法用于绑定创建Holder，一般用来设置数据
     *
     * @param holder
     * @param position
     */
    @Override
    public void onBindViewHolder(InnerHolder holder, int position) {
        //在这里设置数据
        holder.setData(mData.get(position),position);
    }

    //返回条目个数
    @Override
    public int getItemCount() {
        if (mData != null) {
            return mData.size();
        }
        return 0;
    }

    public void setOnItemClickListener(OnItemClickListener listener) {
        //设置一个监听（回调）接口
        this.mOnItemClickListener=listener;
    }

    /**
     * 编写回调的步骤
     * 1.创建这个接口
     * 2.定义接口内部的方法
     * 3.提供设置接口的方法（外部实现）
     * 4.接口方法调用
     */

    public interface OnItemClickListener{
        void onItemClick(int position);
    }


    public class InnerHolder extends RecyclerView.ViewHolder {
        private ImageView mIcon;
        private TextView mTitle;
        private int mPosition;

        public InnerHolder(View itemView) {
            super(itemView);

            //找到条目的控件
            mIcon = (ImageView) itemView.findViewById(R.id.list_view_icon);
            mTitle = (TextView) itemView.findViewById(R.id.list_view_title);
            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    if (mOnItemClickListener!=null){
                        mOnItemClickListener.onItemClick(mPosition);
                    }
                }
            });
        }

        /**
         * 这个方法用于设置数据
         */
        public void setData(ItemBean itemBean,int position) {

            this.mPosition=position;
            //开始设置数据
            mIcon.setImageResource(itemBean.icon);
            mTitle.setText(itemBean.title);
        }

    }
}
